//: [Previous](@previous)
/*:
 
 #58 [Length of Last Word](https://leetcode.com/problems/length-of-last-word/description/)
 
 Given a string s consists of upper/lower-case alphabets and empty space characters `' '`, return the length of last word in the string.
 
 If the last word does not exist, return 0.
 
 Note: A word is defined as a character sequence consists of non-space characters only.
 
 Example:
 ```
 Input: "Hello World"
 Output: 5
 ```
 
 */
import Foundation

class Solution {
    func lengthOfLastWord(_ s: String) -> Int {
        
        let news = s.trimmingCharacters(in: .whitespacesAndNewlines)
        
//        let words = news.components(separatedBy: " ")
//
//        print(words)
//
//        return words.last?.count ?? 0
        
        guard let lastSpaceIndex = news.lastIndex(of: " ") else {
            return news.count
        }

        return news.distance(from: lastSpaceIndex, to: news.endIndex) - 1
    }
}

print(Solution().lengthOfLastWord("a "))

//: [Next](@next)
